import pandas as pd
import numpy as np

s = pd.Series([1, 3, 6, np.nan, 44, 1])

print(s)
print()
"""
0     1.0
1     3.0
2     6.0
3     NaN
4    44.0
5     1.0
dtype: float64
"""

dates = pd.date_range('20160101', periods=6)
print(dates)
print()

# randn函数返回一个或一组样本，具有标准正态分布
# index为列，columns为行。用datas定义列，['a','b','c','d']定义行
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd'])
print(df)
print()

df1 = pd.DataFrame(np.arange(12).reshape((3, 4)))
print(df1)
# 默认行的序列为0  1   2   3，列为0   1   2
"""
   0  1   2   3
0  0  1   2   3
1  4  5   6   7
2  8  9  10  11
"""

df2 = pd.DataFrame({'A': 1,
                    'B': pd.Timestamp('20211012'),
                    'C': pd.Series(1, index=list(range(4)), dtype='float32'),
                    'D': np.array([3] * 4, dtype='int32'),
                    'E': pd.Categorical(["test", "train", "test", "train"]),
                    'F': 'foo'
                    })
print(df2)

# 如果想要查看数据中的类型, 我们可以用 dtype 这个属性:
print(df2.dtypes)

# 如果想看对列的序号:
print(df2.index)
# Int64Index([0, 1, 2, 3], dtype='int64')

# 同样, 每种数据的名称也能看到:
print(df2.columns)
# Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')

# 如果只想看所有df2的值:
print(df2.values)
print()

# 想知道数据的总结, 可以用 describe():
# 但是它只能描述数值类型的数据，包括一些总数，平均值，
print(df2.describe())

# 翻转数据
print(df2.T)
print()

# 如果想对数据的 index （列）进行排序并输出:
# ascending=False，意思是倒序
print(df2.sort_index(axis=1, ascending=False))


print(df2.sort_index(axis=0, ascending=False))
print()
# 如果是对单行 值 排序输出
print(df2.sort_values(by='B'))
